package com.twt.model.base;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Data
public class BaseEntity {

    /*js 的 number 类型支持的最大值是9007199254740992 （2 的 53次方 -1），溢出之后的精度会丢失，导致前后端的值不一致。
    java 的 long 类型最大值为 9223372036854775807，远高于 js number类型的最大值，所以这个坑就出现了。*/
//    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @TableLogic
    @TableField(value = "is_deleted",fill = FieldFill.INSERT)
    private Integer isDeleted;

//    @TableField(exist = false)
//    private Map<String, Object> param = new HashMap<>();
}
